/**
 * 统计文件夹内每个文件的行数
 * @param {}  -
 * @returns {}
 */

// 引用文件系统模块
let fs = require('fs')

// 读取文件列表
function readFileList(path, filesList) {
  let files = fs.readdirSync(path)
  files.forEach(function (itm, index) {
    let stat = fs.statSync(path + itm)

    // 判断是否存在文件夹
    if (stat.isDirectory()) {
      // 递归读取文件
      readFileList(path + itm + '/', filesList)
    } else {
      let obj = {} // 定义一个对象存放文件的路径和名字
      obj.path = path // 路径
      obj.filename = itm // 名字
      filesList.push(obj)
    }
  })
}

let getFiles = {
  // 获取文件夹下的所有文件
  getFileList: function (path) {
    let filesList = []
    readFileList(path, filesList)
    return filesList
  },
}
getFiles.getTxtList('../../../').forEach(function (item) {
  let dirState = fs.existsSync('./countLine') // 判断目录是否存在
  if (!dirState) {
    fs.mkdirSync('./countLine') // 创建目录
  }
  let state = fs.existsSync('./countLine/fileInfo.txt')
  let cData = ''
  if (state) {
    cData = fs.readFileSync('./countLine/fileInfo.txt') // 同步读取统计文件内容
  }
  let filePath = item.path + item.filename
  let content = fs.readFileSync(filePath)
  cData = cData.toString('utf-8') + filePath + '  ' + content.toString('utf8').split('\n').length + '\n'
  fs.writeFileSync('./countLine/fileInfo.txt', cData)
})
